From: Florian Müllner Date: Sun, 31 Jul 2022 23:41:01 +0000 (+0200) Subject: status/network: Use property bindings for global visibility X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~461^2^2~136 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=54a1c34f6e345e05e84ddc0d53fc4fcdc9b7b28e;p=gnome-shell.git status/network: Use property bindings for global visibility There is a straight mapping between running/enabled and visibility, so bind them instead of using a signal handler. _syncConnectivity() is called both from _syncMainConnection() and on connectivity changes, which should cover any running/enabled changes. That just leaves updating the icon on state changes. Part-of: --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 65e91b35e..a8fddaad0 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -1779,14 +1779,18 @@ class Indicator extends PanelMenu.SystemIndicator { this._readConnections(); this._readDevices(); - this._syncNMState(); this._syncMainConnection(); this._syncVpnConnections(); + this._client.bind_property('nm-running', + this, 'visible', + GObject.BindingFlags.SYNC_CREATE); + this._client.bind_property('networking-enabled', + this.menu.actor, 'visible', + GObject.BindingFlags.SYNC_CREATE); + this._client.connectObject( - 'notify::nm-running', () => this._syncNMState(), - 'notify::networking-enabled', () => this._syncNMState(), - 'notify::state', () => this._syncNMState(), + 'notify::state', () => this._updateIcon(), 'notify::primary-connection', () => this._syncMainConnection(), 'notify::activating-connection', () => this._syncMainConnection(), 'notify::active-connections', () => this._syncVpnConnections(), @@ -2061,14 +2065,6 @@ class Indicator extends PanelMenu.SystemIndicator { } } - _syncNMState() { - this.visible = this._client.nm_running; - this.menu.actor.visible = this._client.networking_enabled; - - this._updateIcon(); - this._syncConnectivity(); - } - _flushConnectivityQueue() { for (let item of this._connectivityQueue) this._portalHelperProxy?.CloseAsync(item);